//
// Created by cch on 2022/5/1.
//

#ifndef IMU_GPS_EKF_IMU_PROCESSER_H
#define IMU_GPS_EKF_IMU_PROCESSER_H
#include "base_type.h"
#include "utils.h"
namespace IMUGPS {

class ImuProcess {
public:
  ImuProcess(const double acc_noise, const double gyro_noise,
             const double acc_bias_noise, const double gyro_bias_noise,
             const Eigen::Vector3d &gravity);
  void Process();
  void Predict(const IMUGPS::ImuDataPtr &lastData,
               const IMUGPS::ImuDataPtr &curData, State *state);

private:
  const double acc_noise_;        //加速度噪声
  const double gyro_noise_;       //陀螺仪噪声
  const double acc_bias_noise_;   //加速度bias噪声
  const double gyro_bias_noise_;  //陀螺仪bias噪声
  const Eigen::Vector3d gravity_; //重力向量
};

} // namespace IMUGPS

#endif // IMU_GPS_EKF_IMU_PROCESSER_H
